#pragma once

#include "IGameState.h"
#include "CAnimation.h"
#include "CBitmapFont.h"

class CPlayer;
class CLevel;
class CAnimationManager;
class CEmitter;

class CGamePlayState : public IGameState
{
	CLevel*						m_pCurrLevel;
	Animations					m_pFire;
	CAnimationManager*			m_pAnimate;
	CBitmapFont					m_bfItem;
	float						m_fTimer;
	RECT						m_rDeath;
	int							m_nBGMusic;
	bool						m_bSecondLevel;
	int							m_nSpawnCount[5];
	CEmitter*					m_pEmitter1;
	CPlayer*					m_pPlayer;

	CGamePlayState();
	CGamePlayState(const CGamePlayState&);
	CGamePlayState& operator=(const CGamePlayState&);
	~CGamePlayState();

public:

	int* SpawnCount() { return m_nSpawnCount; }
	bool SecondLevel() const { return m_bSecondLevel; }
	void SecondLevel(bool bSecondlevel) { m_bSecondLevel = bSecondlevel; }
	CLevel* CurrLevel() const { return m_pCurrLevel; }
	void CurrLevel(CLevel* val) { m_pCurrLevel = val; }
	RECT Death() const { return m_rDeath; }
	void Death(RECT val) { m_rDeath = val; }

	static CGamePlayState* GetInstance();
	bool DeleteInstance();

	void Enter();
	bool Input();
	void Update(float fDelta);
	void Render();
	void Exit();

	void DoStuff();
};